const app = getApp()

var urlList = []
import form_submit from '../../mixins/form_submit'
import { throttle } from '../../utils/throttle.js'
import { HiddenCall } from '../../request/api'
const request = new HiddenCall
import filter from '../../mixins/filter'
Page({
  /**
*  房客源详情媒体列表
* - @author             王磊
* - @date               2018-07-11
* playTimeInterval   时间函数
* isdelete                 显示隐藏删除弹窗
* id                           单个删除
* ugroup                  群组删除
*/
  mixins: [filter, form_submit],
  data: {
    isdelete: false,
    id: -1,
    ugroup: -1
  },
  onLoad: function (options) {
    if (options.data !== "null") {
      let data = JSON.parse(options.data)
      // 获取房客源编号，房客源数据model
      this.setData({
        houseCode: data.teantType === "house" ? data.model.houseCode : data.model.customerCode,
        houseData: data.model
      })
      // 查询媒体列表
      this.pathList({ resourceCode: data.teantType === "house" ? data.model.houseCode : data.model.customerCode })
      // 根据房客源修改页面标题
      wx.setNavigationBarTitle({
        title: data.teantType === "house" ? "房源详情" : "客源详情"
      })
    }
    // 录音播放管理器
    this.innerAudioContext = wx.createInnerAudioContext()
    // 录音播放失败回调函数
    this.innerAudioContext.onError((res) => {
      // 给与用户友好提示
      wx.showToast({
        title: '播放录音失败，请稍后再试！',
        icon: 'none'
      })
    })
    // 录音播放完毕回调函数
    this.innerAudioContext.onEnded(() => {
      // 停止播放，停止播放动画 
      this.stopRecord()
    })
  },
  /**
   * 截取媒体列表上传时间，高亮天数
   * author wl
   */
  splitTime(data) {
    for (let i = 0; i < data.length; i++) {
      // 截取年月日，高亮天数
      let dateSymbol = data[i].createtime.split(" ")[0].indexOf('-') !== -1 ? '-' : '/'
      // 截取时间
      data[i].time = data[i].createtime.split(" ")[1]
      // 截取天数
      data[i].day = data[i].createtime.split(" ")[0].split(/\-|\//)[2]
      // 截取日期
      data[i].date = data[i].createtime.split(" ")[0].split(`${dateSymbol + data[i].day}`)[0].replace('-', '/')
      // 录音获取播放时间，添加后缀
      if (data[i].utype === '1002') {
        data[i].contents.forEach((el) => {
          // 获取时间
          let substr = el.url.match(/duration=(\S*)/)
          el.duration = Math.floor(substr[1] / 1000)
          // 替换duration=加mp3
          let url = el.url.replace(substr[0], "")
          el.url = url + ".mp3"
        })
      }
    }
    // 更新数据渲染
    this.setData({ mediaList: this.data.mediaList })
  },
  /**
   * 点击查看单个媒体图片||单个媒体视频
   * author wl
   */
  openMedia: throttle(function(e) {
    // 拿到图片地址
    let path = e.currentTarget.dataset.media[0],
      // 上传时间
      time = e.currentTarget.dataset.media[1],
      // 媒体类型
      utype = e.currentTarget.dataset.media[2],
      // 图片类型
      imageType = e.currentTarget.dataset.media[3],
      // 图片id 用作删除
      id = e.currentTarget.dataset.media[4],
      model = e.currentTarget.dataset.media[5]

    let data = { path, time, utype, imageType, id }
    // 开启媒体查看窗
    this.setData({
      showMedia: true,
      showData: data,
      imgUrls: model,
      current: e.currentTarget.dataset.index
    })
  }, 2000),
  /**
   * 关闭查看单个媒体图片||单个媒体视频
   * author wl
   */
  offMedia() {
    this.setData({ showMedia: false })
  },
  /**
   * 媒体列表录音播放
   * author wl
   */
  playRecord(e) {
    // 播放索引和播放地址
    let index = e.currentTarget.dataset.index
    let url = e.currentTarget.dataset.url
    // 将对应的url放入数组，便于区分播放位置
    urlList[index] = url
    // 播放当前url
    this.innerAudioContext.src = url
    // 开始播放
    this.innerAudioContext.play()
    // 打开播放动画，更新数据
    this.setData({ play: true, urlList })
  },
  /**
   * 媒体列表录音停止播放
   * author wl
   */
  stopRecord() {
    // 停止播放
    this.innerAudioContext.stop()
    // 关闭播放动画
    this.setData({ play: false })
  },
  /**
   * 查询房客源媒体列表
   * author wl
   */
  pathList(data) {
    request.pathList(data.resourceCode).then((res) => {
      // 更新媒体列表
      this.setData({ mediaList: res })
      // 将获取的新数据时间截取高亮
      this.splitTime(res.mediaContents)
    })
  },
  /**
   *  删除当前媒体群组
   *  author wl
   */
  delMedia(e) {
    // 开启删除弹窗，获取群组id
    this.setData({
      ugroup: e.currentTarget.dataset.ugroup,
      isdelete: true
    })
  },
  /**
   * 删除单独媒体
   * author wl
   */
  delBigMedia(e) {
    // 开启删除弹窗，获取单独媒体id
    this.setData({
      isdelete: true,
      id: e.currentTarget.dataset.id
    })
  },
  /**
   * 取消删除媒体，关闭删除弹窗，重置单独||群组媒体id
   * author wl
   */
  delCancle() {
    this.setData({
      isdelete: false,
      id: -1,
      ugroup: -1
    })
  },
  /**
   * 确认删除单独||群组媒体
   * author wl
   */
  delConfirm: throttle(function() {
    // 单独和群组不为-1的情况下区分删除操作
    let data = {
      // 删除单独或群组媒体
      resorceCode: this.data.id !== -1 ? this.data.id : this.data.ugroup,
      // 单独||群组类型
      "utype": this.data.id !== -1 ? "single" : "multiple",
      // 房客源编号
      "houseCode": this.data.houseCode
    }
    // 接口调用删除媒体
    request.pathErase(data).then((res) => {
      // 单独删除后，初始单独删除值
      if (this.data.id !== -1) {
        // 关闭删除弹窗，重置单独媒体删除id
        this.setData({
          showMedia: false,
          isdelete: false,
          id: -1
        })
      } else {
         // 群组删除后，初始群组删除值
        this.setData({ isdelete: false, ugroup: -1 })
      }
      // 删除后刷新媒体列表数据
      this.pathList({ resourceCode: this.data.houseCode })
    })
  }, 2000),
  /**
   * 获取单独图片id
   * 
   */
  getImage (e) {
    this.data.showData.id = this.data.imgUrls[e.detail.current].id
    this.setData({ showData: this.data.showData })
  }
})